#include<stdio.h>
#include<stdlib.h>

int mainc()
{
    //malloc 申请空间失败，返回空指针
    // int*a=(int*)malloc(4);
    // if(a==NULL)
    // {
    //     printf("申请空间失败！\n");
    //     return -1;
    // }
    // *a=10;
    // printf("%d\n",*a);
    // free(a);
    //申请数组10个
    // int *a=(int*)malloc(sizeof(int)*10);
    // if (a==NULL)
    // {
    //     printf("申请空间失败！\n");
    //     return -1;
    // }
    // for (int i = 0; i < 10; i++)
    // {
    //     a[i]=i+1;
    // }
    // for (int i = 0; i < 10; i++)
    // {
    //     printf("%d ",a[i]);
    // }
    // printf("\n");

    // free(a);
    //申请二维数组
    int**a=(int**)malloc(sizeof(int*)*2);
    if (a==NULL)
    {
        printf("申请空间失败！\n");
        return -1;
    }
    //遍历指针数组
    for(int i=0;i<2;i++)
    {
        a[i]=malloc(sizeof(int)*3);
        if (a==NULL)
    {
        printf("申请空间失败！\n");
        return -1;
    }
    }

    for (int i = 0; i <2; i++)
    {
        for (int j = 0; j <3; j++)
        {
            a[i][j]=i*3+j+1;
        }
        
    }
      for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j <3; j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
        
    }
    for (int i = 0; i < 2; i++)
    {
        free(a[i]);
    }
    
    free(a);


    return 0;
}